﻿
/*用“埃氏筛法”求2 ~ 100以内的素数。2~ 100以内的数，先去掉2的倍数，再去掉3的倍数，再
 去掉4的倍数，以此类推...最后剩下的就是素数。*/

using System;

namespace sieve_of_Eratosthenes
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] A = new int[99];
            for(int i = 0; i < 99; i++)
            {
                A[i] = i + 2;
            } 
            //A[]存储2~100内的数

            int s=2;
            while ( s < System.Math.Sqrt(100))//开方
            {
                for(int i = 0; i < 99; i++)
                {
                    if (A[i] != 0 && A[i] % s == 0 && A[i] != s)//是s的非零倍数
                    {
                        A[i] = 0;//置零
                    }
                }
                for(int j = 0; j < 99; j++)
                {
                    if (A[j] != 0 && A[j] > s)
                    {
                        s = A[j];
                        break;
                    }
                }
            }
            for(int j = 0; j < 99; j++)
            {
                if (A[j] != 0)
                {
                    Console.WriteLine(A[j]+" ");
                }
            }//输出数组中非零的数
        }
    }
}
